﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Framework.Entidade.Acesso
{
    [Serializable]
    public class EN_Funcionalidade
    {
        #region Atributos

        private int id;
        private int idPai;
        private string titulo;
        private string descricao;
        private string resumo;
        private string destino;
        private string tipo;
        private int ordem;
        private bool status;
        private string corMenu;

        private EN_Funcionalidade objFuncionalidade;
        private List<EN_Grupo> lstGrupos;
        private List<EN_Usuario> lstUsuarios;

        #endregion

        #region Propriedades

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public int IdPai
        {
            get { return idPai; }
            set { idPai = value; }
        }

        public string Titulo
        {
            get { return titulo; }
            set { titulo = value; }
        }

        public string Descricao
        {
            get { return descricao; }
            set { descricao = value; }
        }

        public string Resumo
        {
            get { return resumo; }
            set { resumo = value; }
        }

        public string Destino
        {
            get { return destino; }
            set { destino = value; }
        }

        public string Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }

        public int Ordem
        {
            get { return ordem; }
            set { ordem = value; }
        }

        public bool Status
        {
            get { return status; }
            set { status = value; }
        }

        public string CorMenu
        {
            get { return corMenu; }
            set { corMenu = value; }
        }

        public EN_Funcionalidade FuncionalidadePai
        {
            get
            {
                if (objFuncionalidade == null)
                    objFuncionalidade = new EN_Funcionalidade();

                return objFuncionalidade;
            }
            set { objFuncionalidade = value; }
        }

        public List<EN_Grupo> ListaGrupos
        {
            get
            {
                if (lstGrupos == null)
                    lstGrupos = new List<EN_Grupo>();

                return lstGrupos;
            }
            set { lstGrupos = value; }
        }

        public List<EN_Usuario> ListaUsuarios
        {
            get
            {
                if (lstUsuarios == null)
                    lstUsuarios = new List<EN_Usuario>();

                return lstUsuarios;
            }
            set { lstUsuarios = value; }
        }

        #endregion
    }
}
